package droid.frame.activity.base;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.view.ViewGroup;
import android.widget.ImageView;

import java.util.ArrayList;

import droid.frame.utils.GlideUtil;
import droid.frame.utils.android.Log;
import droid.frame.utils.http.BitmapLoader;
import droid.frame.utils.http.ImageCallback;

/**
 * 处理有网络图片的listview
 *
 * @param <T>2016-11-17上午11:49:59
 * @author coffee<br>
 */
public class BaseAdapterWithImage<T> extends BaseAdapterExt<T> {

    public BaseAdapterWithImage(ArrayList<T> items, Activity context, ViewGroup listView) {
        super(items, context, listView);
    }

    /**
     * 备注: 图片混乱, 一般情况下有两种情况<br>
     * 1: convertView对象被复用, 导致的ImageView是同一个对象, 此时需要设置ImageView的tag <br>
     * 2: convertView对象被复用, 图片加载失败,导致的没有成功执行setImageBitmap <br>
     * 此时需要传入imageCallback处理图片加载失败, 或者每次都把ImageView初始化设置显示默认图<br>
     *
     * @param url
     * @param image
     * @param imageCallback 如果传入的ImageCallback对象为空, 则ImageView应该进行初始化 setImageBitmap
     */
    protected void showImage(final String url, final ImageView image, final ImageCallback imageCallback) {
//        if (url == null || url.trim().length() == 0) {
//            image.setImageBitmap(null);
//            return;
//        }
        Log.d("showImage", image + "\n" + url);
//        image.setTag(url);// 设置TAG
        GlideUtil.loadImage(context, url, 0, image);
//        new AsyncTask<String, Void, Bitmap>() {
//            @Override
//            protected Bitmap doInBackground(String... params) {
//                Bitmap bitmap = BitmapLoader.loadNotUI(params[0]);
//                return bitmap;
//            }
//
//            protected void onPostExecute(Bitmap result) {
//                if (result != null) {
//                    ImageView imageView = (ImageView) listView.findViewWithTag(url);// 从tag里查找, 防止错乱
//                    if (imageView != null) {
//                        imageView.setImageBitmap(result);
//                        imageView.setTag(System.currentTimeMillis());
//                    } else {
//                        image.setImageBitmap(result);
//                    }
//                } else {
//                    if (imageCallback != null) {
//                        imageCallback.onFailed();
//                    }
//                }
//            }
//
//        }.execute(url);
    }
}
